/** 将json转换为ES6模块 */
import json from "@rollup/plugin-json";
/** rollup解析及编译TS插件 */
import typescript2 from "rollup-plugin-typescript2";

/** 解析代码中依赖的node_modules */
import { nodeResolve } from "@rollup/plugin-node-resolve";

/** 将 CommonJS 模块转换为 ES6 的 Rollup 插件 */
import commonjs from "@rollup/plugin-commonjs";

/** rollup文件夹清除插件 */
import { cleandir } from "rollup-plugin-cleandir";

//  代码压缩
import { terser } from 'rollup-plugin-terser';

// 开发环境or生产环境
const NODE_ENV = process.env.NODE_ENV

// 判断是是否为生产环境
const isPro = function () {
  return NODE_ENV === 'production'
}

const plugins = [
  typescript2(),
  // 配置插件 - 将json转换为ES6模块
  json(),
  // 生产模式则压缩代码
  isPro() && terser(),

  // 配置插件 - 每次打包清除目标文件
  // cleandir("./bin/"),

  // nodeResolve({
  //   extensions: [".js", ".ts", ".json"],
  //   // modulesOnly: true,
  //   preferredBuiltins: false,
  // }),

  // commonjs({ extensions: [".js", ".ts", ".json"] }),
]
export default {
  // 打包入口文件
  input: ["src/main.ts"],
  // 输出配置
  output: [
    {
      file: "./bin/cli.js",
      format: 'es',
      banner: "#!/usr/bin/env node",
      // sourcemap: true, // 生成map文件 方便调试
    },
  ],
  plugins: plugins,
  external: []//排除的外包名，打包后还是引入的包，不一起打包进去
};